
<p><br />Возможности языка<br /><br />JavaScript является объектно-ориентированным языком, но используемое в языке прототипирование обуславливает отличия в работе с объектами по сравнению с традиционными класс-ориентированными языками. Кроме того, JavaScript имеет ряд свойств, присущих функциональным языкам — функции как объекты первого класса, объекты как списки, карринг, анонимные функции, замыкания — что придаёт языку дополнительную гибкость.<br /><br />Несмотря на схожий с Си синтаксис, JavaScript по сравнению с языком Си имеет коренные отличия:<br /><br />    объекты, с возможностью интроспекции;<br />    функции как объекты первого класса;<br />    автоматическое приведение типов;<br />    автоматическая сборка мусора;<br />    анонимные функции.<br /><br />В языке отсутствуют такие полезные вещи[26], как:<br /><br />    модульная система: JavaScript не предоставляет возможности управлять зависимостями и изоляцией областей видимости;<br />    стандартная библиотека: в частности, отсутствует интерфейс программирования приложений по работе с файловой системой, управлению потоками ввода/вывода, базовых типов для бинарных данных;<br />    стандартные интерфейсы к веб-серверам и базам данных;<br />    система управления пакетами[~ 3], которая бы отслеживала зависимости и автоматически устанавливала их.<br />    </p>